package camelinaction; import java.security.SignatureException; import org.apache.camel.CamelExecutionException; import org.apache.camel.builder.RouteBuilder; import org.junit.Test; public class ManInTheMiddleTest extends MessageSigningTest { @Test public void testSignAndVerifyMessage() throws Exception { getMockEndpoint("mock:signed").expectedBodiesReceived("Hello World"); try { template.sendBody("direct:sign", "Hello World"); } catch (CamelExecutionException e) { assertMockEndpointsSatisfied(); assertIsInstanceOf(SignatureException.class, e.getCause()); } } @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { @Override public void configure() throws Exception { from("direct:sign") .toF("crypto:sign://keystore?keystore=%s&alias=%s&password=%s", "#keystore", "jon", "secret") .to("mock:signed") .to("direct:mitm"); from("direct:mitm") .setBody().simple("I'm hacked!") .to("direct:verify"); from("direct:verify") .toF("crypto:verify://keystore?keystore=%s&alias=%s&password=%s", "#truststore", "jon", "secret") .to("mock:verified"); } }; } }